Field of the Invention
The field of the invention is data processing, or, more specifically, methods, systems, and products for code path tracking.
Description of Related Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely complicated devices. Today's computers are much more sophisticated than early systems such as the EDVAC. Computer systems typically include a combination of hardware and software components, application programs, operating systems, processors, buses, memory, input/output devices, and so on. As advances in semiconductor processing and computer architecture push the performance of the computer higher and higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
As computer software has become more complicated, analyzing problems in the software code and improving functions executed in the software code has also become more difficult. Tools currently exist which can sample instruction paths taken in specific software modules or collect data at trace points built into the software. These coverage tools are somewhat useful but they have several limitations:                Conventional instruction path sampling cannot be left on for long periods of time due to the overhead incurred in both CPU consumption and memory usage.        Conventional code path sampling misses code paths executed between samples        Conventional code path sampling does not provide context. The code has to be inspected to understand why it was or was not executed.        The overhead of defining and exposing conventional trace point is often high because external commands must be changed and documented. Tools must also be modified with each change.        Conventional tools provide no vehicle for evaluating alternative functions to potential problematic functions.        Conventional tools provide no vehicle for replaying the execution of functions.        
There is therefore an ongoing need for improvement in code path tracking.